1. Field of the Invention
This invention relates to the field of presenting data streams constructed using a hypertext markup language (HTML). Specifically, this invention is a new and useful method, apparatus, system, and computer program product for displaying fixed canvas presentations, defined using HTML, at sizes other than the size of the fixed canvas.
2. Background
Well-known computer programs allow a person to create a slide, overhead transparency or an image on a computer display that can be used to present information to others. One aspect of these programs is that each slide, transparency, or image is constructed for a fixed canvas (that of the slide, the transparency or computer display having a fixed width and height) in a what-you-see-is-what-you-get (WYSIWYG) manner. Thus, these applications are extremely well suited for creating presentations directed towards a known display medium. However, fixed canvas tools are not suited for presentations directed toward an unknown display medium such as a computer display device of unknown size that may not be large enough to display an image the size of the canvas.
One example of a class of programs that are well suited to presenting information on a variety of unknown display devices are those that process HTML data. These programs are generally termed world-wide-web (WWW) browser programs because of their wide use for browsing through data on the WWW. A goal of these programs is to present the information contained in an HTML data stream on a display in a scrollable view. As such, the browser program formats the displayed HTML information according to the browser program's page layout logic and does not necessarily recreate the layout intended by the author of the HTML data. Browser programs exist for many computer systems. Thus, a single HTML data stream can be utilized by many different computers. However, the prior art does not provide a means to achieve the same displayed image on differing size computer displays because the browser's page layout logic generates different results depending on the display area available and the available fonts and typography software. Thus, prior art WWW browsers, like the prior art presentation applications, are not well suited for presentations using display devices of unknown size.
The prior art does provide for minimal control of the page layout. The HTML &lt;PRE&gt; element allows an author to define monospaced textual areas with specified line breaks and white-space. However, if a sufficiently small area is used to present the HTML, the text within the &lt;PRE&gt; area will not be displayed because the browser does not wrap text in a &lt;PRE&gt; element nor does the browser reduce the contents of the &lt;PRE&gt; element to fit a small limited display area.
World Wide Web
The WWW is a massive hypertext system that a user accesses using a WWW browser application executing on a computer--an information access apparatus. The WWW browser apparatus communicates with, and is a client of, information provider apparatus such as server computers each computer executing server applications capable of communicating with the client browser application. These clients obtain information and services, in the form of web pages, from the server. These web pages are identified by unique universal resource locators (URL) and are usually specified using a markup language--generally a version of the hypertext markup language (HTML). HTML 2.0, is described in RFC1866 and can be found on the WWW at: "http://www.cis.ohio-state.edu/htbin/rfc/rfc1866.html". However, HTML is evolving and variants exist. For example, the HTML 3.2 proposal is found at "http://www.w3.org/pub/WWW/MarkUP/Wilbur/features.html".
The background of the WWW, WWW browser applications, and URLs is well described by reference to the first chapter of Instant HTML Web Pages, by Wayne Ause, Ziff-Davis Press, ISBN 1-56276-363-6, copyright 1995, pages 1-15, hereby incorporated by reference as illustrative of the prior art.
FIG. 1a illustrates an example of how a plurality of computers implement a client-server information access system. An information client system 101 communicates over a network 103 such as the internet 103 to a plurality of information server systems 105. The client system 101 encapsulates requests for services and information within an applicable internet protocol and passes the encapsulated requests to the internet 103 as indicated by an arrow 107. The internet 103 routes these requests to each of the plurality of information server systems 105 addressed within the request as indicated by a plurality of arrows 109. Each of the plurality of addressed information server systems 105 respond to the client system 101 with responses appropriate to the service or information requested by the client system 101. Once the client system 101 receives this information it is presented to the user by using an application program (for example, a WWW browser) executing on the client computer.
Hypertext documents, composed of HTML data, can be presented to a user by an application. The application processes the HTML data contained within the document to generate an image that can be displayed to a user on a computer display or tangible page. Unlike page description languages, such as PostScript, the "page" layout of HTML documents is dependent on the drawing area used to display the image described by the HTML data. Thus, HTML is used to describe hypertext documents that are portable from one computing platform to another and that do not need WYSIWYG functionality. The HTML concept is that of a scrolling page that can be resized as desired by the user. Thus, HTML based applications do not strive to achieve WYSIWYG functionality, but rather they strive to appropriately present information in drawing areas of different sizes and resolutions to the best of the browser's ability. Thus, an application that presents HTML data will use whatever drawing area is available to render the HTML data to best fit that given drawing area. To perform this function the application will automatically wrap lines, adjust the width and height of table cells and perform other drawing area dependent operations to best display the HTML document in the available drawing area.
FIGS. 1b-1d illustrate the results of this function. FIG. 1b illustrates an image, referred to by the general reference character 121, resulting from a HTML data stream. The image 121 is within a window 123 presented on a computer display device (not shown but such as a printer or video device). The image 121 includes a graphic 125 and a textual string 127. The textual string 127 is wrapped near an edge 129 of the window 123. Because the entire image 121 defined by the HTML data can be displayed in the window 123, there are no scrolling controls.
FIG. 1c illustrates an image, referred to by the general reference character 131, of the same HTML data stream where the window 123 has been narrowed. Again the graphic 125 is completely contained within the window 123. However, the textual string 127 has been wrapped near an edge 133 of the window 123 to fit the textual string within the horizontal bounds of the window 123. Because the textual string 127 now extends below the bottom of the window 123, the window 123 requires a user selectable control area (SCA) 135 to allow the user to vertically scroll the image 131 within the window 123. A thumb 137 within the SCA 135 both indicates the position of the image 131 in the window 123 and serves as a user control for the SCA 135 to position the image 131 within the window 123.
Finally, FIG. 1d illustrates an image, referred to by the general reference character 141, of the same HTML data stream where the window 123 has been further narrowed. This time, the graphic 125 is not able to be completely displayed and is clipped at an edge 143. Thus, the image 141 now requires an SCA 145 that controls horizontal scrolling of the display 141 within the window 123. This SCA 145 also has a thumb 147 that both indicates and controls the position of the image 141 within the window 123.
These figures illustrate the problems with prior art HTML processing techniques used to present information designed for a specific size display onto a display of a different size.